home *** CD-ROM | disk | FTP | other *** search
- #ifndef _SIFDL_H
- #define _SIFDL_H
-
- #ifndef _SIDLG_H
- # include <sidlg.h>
- #endif
- #ifndef _SISBAR_H
- # include <sisbar.h>
- #endif
- #ifndef _SIGLN_H
- # include <sigln.h>
- #endif
-
- #define FDL_LEN_FN (256)
-
- typedef struct _fdlfile_t /* ファイル情報構造体 */
- {
- struct _fdlfile_t *next;
- int no; /* 番号 */
- unsigned short stt; /* 属性 */
- unsigned char mark; /* 選択マーク */
- unsigned char att; /* 属性 */
- unsigned short time; /* 時刻 */
- unsigned short date; /* 日付 */
- long siz; /* ファイルサイズ */
- char name[14]; /* ファイル名 */
- } FDLFILE_T;
-
- #define FDLFILE_STT_PICKUP (0x0001)
-
- typedef struct _fdlcfn_t /* クリップファイル名 */
- {
- struct _fdlcfn_t *next;
- int no; /* クリップ番号 */
- char mark; /* マーク */
- unsigned char att; /* 属性 */
- unsigned short stt; /* 状態 */
- char *fn;
- } FDLCFN_T;
-
- #define FDLCFN_HASH_MAX (16) /* ハッシュテーブル数 */
-
- typedef struct _fdldtree_t /* ディレクトリツリー構造体 */
- {
- struct _fdldtree_t *prev, *next;
- struct _fdldtree_t *child, *parent;
-
- int level; /* ルートからの階層 */
- unsigned short stt; /* 属性 */
- unsigned char mark; /* 選択マーク */
- unsigned char att; /* 属性 */
- unsigned short time; /* 時刻 */
- unsigned short date; /* 日付 */
- char name[14]; /* ファイル名 */
- char dir[FDL_LEN_FN]; /* ディレクトリ名 */
- int numDir; /* サブディレクトリ配下 */
- } FDLDTREE_T;
-
- #define FDLDTREE_STT_READMK (0x0001) /* 読込マーク */
-
-
- typedef struct /* 文字列入力ダイアログ構造体 */
- {
- WIN_T *win;
- EV_T *ev;
- FRAME_T fr;
- GLN_T *gln;
- } FDLDLG_INP_T;
-
- typedef struct /* ドライブ情報ダイアログ構造体 */
- {
- WIN_T *win;
- EV_T *ev; /* ドライブイベント */
- FRAME_T fr;
-
- unsigned long sizFree; /* 残り容量 */
- unsigned long sizCapa; /* 総容量 */
- char namVol[16]; /* ディスクボリューム名 */
- FRAME_T frDrv; /* ドライブ一覧表示枠 */
- } FDLDLG_DRV_T;
-
- typedef struct /* ディレクトリセレクタ */
- {
- EV_T *ev;
- SB_T *sb;
- FRAME_T fr;
-
- int numDir;
- FDLFILE_T **dirTbl;
- int nDspX, nDspY; /* 縦横表示数 */
- int numDsp; /* 表示オフセット */
- int ofsDsp; /* 表示オフセット */
- int posCur; /* カーソル位置(表示位置) */
- } FDLLST_DIR_T;
-
- typedef struct /* ファイルセレクタ */
- {
- EV_T *ev;
- SB_T *sb;
- FRAME_T fr;
-
- int numTbl; /* テーブルのファイル数 */
- FDLFILE_T **fileTbl;
- int posDsp; /* 表示先頭位置 */
- int numDsp; /* 表示数 */
- int ofsDsp; /* 表示オフセット */
- int posCur; /* カーソル位置(表示位置) */
- } FDLLST_FILE_T;
-
- typedef struct /* ファイルセレクタ */
- {
- WIN_T *win;
- EV_T *ev;
- FRAME_T fr;
- char dir[FDL_LEN_FN];
-
- int numFile; /* 総ファイル数 */
- FDLFILE_T *fileTop;
- FDLFILE_T *fileLast;
-
- FDLLST_DIR_T lstdir;
- FDLLST_FILE_T lstfile;
- } FDLDLG_LST_T;
-
- typedef struct /* ディレクトリツリー */
- {
- WIN_T *win;
- EV_T *ev;
- EV_T *evTree;
- SB_T *sb;
- FRAME_T fr;
-
- int numTree;
- FDLDTREE_T *treeTbl;
- int numDspX, numDspY; /* 縦横表示数 */
- int posCur; /* カーソル位置 */
-
- FRAME_T frScn; /* ディレクトリ一覧表示枠 */
- } FDLDLG_DTR_T;
-
- typedef struct _fdldrh_t /* ディレクトリヒストリ */
- {
- struct _fdldrh_t *next;
- char *dir;
- } FDLDRH_T;
-
- typedef struct /* ディレクトリヒストリ */
- {
- WIN_T *win;
- EV_T *ev;
- FRAME_T fr;
-
- int maxHis;
- FDLDRH_T *his;
- int numHis;
- int posHis;
- int posCur;
-
- FRAME_T frScn;
- } FDLDLG_DRH_T;
-
- typedef struct /* 情報表示スクリーン */
- {
- WIN_T *win;
- EV_T *ev;
- FRAME_T fr;
- char fn[FDL_LEN_FN]; /* タイトル表示用 */
-
- FTSDAT_T *fts;
- int xs, ys;
- int typ;
- size_t sizBuf;
- size_t sizFile;
- char *buf; /* バッファ */
- FDLFILE_T *fileTop;
- void *scndsp; /* 表示関数 */
- void *ptr; /* ユーザー登録関数用 */
-
- FRAME_T frScn; /* ディレクトリ一覧表示枠 */
- int on;
- } FDLDLG_SCN_T;
-
- typedef struct /* ファイルクリップ */
- {
- WIN_T *win;
- EV_T *ev;
- EV_T *evClp;
- SB_T *sb;
-
- int numCfn;
- FDLCFN_T **cfnTbl;
- int posDsp;
- int numDsp;
- int posCur;
-
- FRAME_T frScn; /* ディレクトリ一覧表示枠 */
- } FDLDLG_CLP_T;
-
- typedef struct /* ファイルダイアログ構造体 */
- {
- unsigned int att; /* 属性 */
- unsigned int stt; /* ステータス */
-
- int drv; /* ドライブ */
- char dir[FDL_LEN_FN]; /* ディレクトリ */
- char *wild; /* ワイルドカード */
- char fn[FDL_LEN_FN]; /* ファイル名 */
- int sort; /* ソート種別 */
- char *title; /* タイトル */
- int error; /* エラーコード */
-
- FDLDTREE_T *treeRoot; /* ツリー構造ルート */
-
- int numCfn; /* クリップファイルの数 */
- FDLCFN_T *cfnHashTbl[FDLCFN_HASH_MAX];
- char **cfnFnTbl;
-
- EV_T *ev; /* イベント */
- int curDlg; /* カレントダイアログ */
- FDLDLG_INP_T dlgInp; /* 文字列入力部 */
- FDLDLG_DRV_T dlgDrv; /* ドライブ情報 */
- FDLDLG_LST_T dlgLst; /* ファイルセレクタ */
- FDLDLG_DTR_T dlgDtr; /* ディレクトリツリー */
- FDLDLG_DRH_T dlgDrh; /* ディレクトリヒストリ */
- FDLDLG_SCN_T dlgScn; /* スクリーン */
- FDLDLG_CLP_T dlgClp; /* クリップ */
- } FDL_T;
-
- extern int FDL_init(void);
- extern void FDL_term(void);
-
- extern FDL_T *FDL_open(void);
- extern void FDL_close(FDL_T *fdl);
-
- extern int FDL_setAtt(FDL_T *fdl,unsigned int att);
- extern int FDL_setStt(FDL_T *fdl,unsigned int stt);
- extern int FDL_setDrv(FDL_T *fdl, int drv);
- extern int FDL_setDir( FDL_T *fdl, CONST char *dir);
- extern int FDL_setWild(FDL_T *fdl,CONST char *wild);
- extern int FDL_setFn(FDL_T *fdl, CONST char *fn);
- extern int FDL_setSort(FDL_T *fdl, int sort);
- extern int FDL_setTitle( FDL_T *fdl, CONST char *form, ... );
-
- extern CONST char *FDL_getFn(FDL_T *fdl);
- extern CONST char *FDL_getDir( FDL_T *fdl );
- extern int FDL_getClipTbl( FDL_T *fdl, int *numFn, char **fnTbl[] );
-
- extern int FDL_start( FDL_T *fdl );
-
- extern FDLCFN_T *FDL_clip_getCfn( FDL_T *fdl, CONST char *fn);
- extern int FDL_isClip( FDL_T *fdl, CONST char *fn);
- extern int FDL_clip_setFn( FDL_T *fdl, CONST char *fn );
- extern int FDL_clip_unsetFn(FDL_T *fdl, CONST char *fn);
- extern void FDL_clip_clear( FDL_T *fdl );
-
- extern int FDL_initColWork(void);
-
- /* 属性 ------------------------------------------------------------*/
- #define FDLATT_SINGLE (0x0000_0001) /* ファイルをひとつだけ選択/指定 */
- #define FDLATT_MULTI (0x0000_0002) /* 複数選択/指定 */
- #define FDLATT_PATH (0x0000_0003) /* ディレクトリ選択/指定 */
- #define FDLATT_DIRIGN (0x0000_0080) /* サブディレクトリの選択/指定を禁止 */
- #define FDLATT_DUPIGN (0x0000_0800) /* 同一ファイル1の選択を禁止する */
- #define FDLATT_EXIST (0x0000_8000) /* 存在するファイルのみ選択可能 */
- #define FDLATT_SIDEWORK (0x0001_0000) /* サイドーク */
- #define FDLATT_DOSCALL (0x0002_0000) /* DOS コマンド */
- #define FDLATT_EXTIGN (0x0004_0000) /* 拡張メニュー禁止 */
-
- /* sort ------------------------------------------------------------*/
- #define FDLSORT_OFF (0) /* ソートなし */
- #define FDLSORT_FILE (1) /* ファイル名 */
- #define FDLSORT_SUB (2) /* 拡張子 */
- #define FDLSORT_DATE (3) /* 日付 */
- #define FDLSORT_SIZE (4) /* サイズ */
- #define FDLSORT_RVS (0x80) /* 昇順/降順 */
- #define FDLSORT_DIRBIT (0x60)
- #define FDLSORT_DIRTOP (0x00) /* ディレクトリ先頭 */
- #define FDLSORT_DIRLAST (0x20) /* ディレクトリ最後 */
- #define FDLSORT_DIROFF (0x40) /* ディレクトリ */
-
-
- #endif
-